package com.hongyi.system.service;


import com.hongyi.common.mybatis.page.PageData;
import com.hongyi.common.mybatis.page.PageQuery;
import com.hongyi.system.domain.dto.SysUserNoticeDto;
import com.hongyi.system.domain.vo.SysUserNoticeVo;
import java.util.Collection;
import java.util.List;

/**
 * 用户消息关联Service接口
 * 
 * @author DingHao
 * @date 2025-01-24 13:13:15
 */
public interface ISysUserNoticeService {

    /**
     * 查询当前用户未读通知数量
     * @return 未读通知数量
     */
    long queryMyNoticeCount();

    /**
     * 查询当前用户未读通知列表
     * @return 前3个未读通知列表
     */
    List<SysUserNoticeVo> queryMyNoticeList();

    /**
     * 查询用户消息关联
     * 
     * @param id 用户消息关联ID
     * @return 用户消息关联Vo
     */
    SysUserNoticeVo querySystemUserNoticeVoById(Long id);

    /**
     * 查询用户消息关联分页列表
     *
     * @param systemUserNoticeDto 用户消息关联业务对象
     * @param pageQuery 分页数据
     * @return 用户消息关联集合
     */
    PageData<SysUserNoticeVo> querySystemUserNoticeVoPageList(SysUserNoticeDto systemUserNoticeDto, PageQuery pageQuery);

    /**
     * 查询用户消息关联列表
     * 
     * @param systemUserNoticeDto 用户消息关联
     * @return 用户消息关联集合
     */
    List<SysUserNoticeVo> querySystemUserNoticeVoList(SysUserNoticeDto systemUserNoticeDto);

    /**
     * 新增用户消息关联
     * 
     * @param systemUserNoticeDto 用户消息关联
     * @return 执行条数
     */
    int addSystemUserNotice(SysUserNoticeDto systemUserNoticeDto);

    /**
     * 修改用户消息关联
     * 
     * @param systemUserNoticeDto 用户消息关联
     * @return 执行条数
     */
    int editSystemUserNotice(SysUserNoticeDto systemUserNoticeDto);

    /**
     * 批量删除用户消息关联
     * 
     * @param ids 需要删除的用户消息关联ID
     * @return 执行条数
     */
    int removeSystemUserNoticeByIds(Collection<Long> ids);


}
